import axios from "axios";
import router from "@/router";
//axios——网络请求库
const request = axios.create({
  baseURL: "/api",
  timeout: 5000,
});

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token，对请求参数统一加密
request.interceptors.request.use(
  (config) => {
    config.headers["Content-Type"] = "application/json;charset=utf-8";

      let tokenItem = sessionStorage.getItem("token");
      if (tokenItem) {
          try {
              let tokenData = JSON.parse(tokenItem);
              config.headers['token'] = tokenData.token;  // 设置请求头
          } catch (error) {
              console.error("Failed to parse token data:", error);
          }
      } else {
          console.log("Token item is missing from sessionStorage.");
      }

    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
  (response) => {
    let res = response.data;

    // 兼容服务端返回的字符串数据
    if (typeof res === "string") {
      res = res ? JSON.parse(res) : res;
    }
    if (res.code === 601) {
          confirm("token过期，重新登录")
          router.push("/login")
    } else if (res.code === 602) {
          confirm(res.message)
          router.push("/login")
    }
    return res;
  },
  (error) => {
    console.log("err" + error); // for debug
    return Promise.reject(error);
  }
);

export default request;
